package com.zjpg.forum.controller.test;


import com.zjpg.forum.common.AppResult;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.UUID;

@RestController
@RequestMapping("/file")
public class FileController {
//    @PostMapping("/uploadFile2")
//    public AppResult update(MultipartFile image,String name) {
//
//        try {
//            if (!image.isEmpty()) {
//                String path = "D:/MyFile/" + name;
//                File dest = new File(path);
//                if (!dest.exists()) {// 判断路径是否已经存在，不存在则创建
//                    dest.mkdirs();
//                }
//                // 把上传的文件转存到本地中
//                image.transferTo(dest);
//                return  AppResult.success("成功");
//
//            }
//            else {
//                return   AppResult.failed("上传失败");
//            }
//        } catch (Exception e) {
//            return   AppResult.failed("上传失败");
//        }
//    }



    //上传图片（非异步）
    @PostMapping("/uploadFile2")
    public AppResult uploadFile(MultipartFile image){
        String fileName=image.getOriginalFilename(); //获取文件名以及后缀名
        //System.out.println(fileName);
        fileName= UUID.randomUUID()+"_"+fileName;//重新生成文件名（根据具体情况生成对应文件名）
        //System.out.println(fileName);
        //获取jar包所在目录
        ApplicationHome h = new ApplicationHome(getClass());
        File jarF = h.getSource();
        //在jar包所在目录下生成一个image文件夹用来存储上传的图片
        String dirPath = jarF.getParentFile().toString()+"/classes/static/image/";
        System.out.println(dirPath);

        File filePath=new File(dirPath);
        if(!filePath.exists()){
            filePath.mkdirs();
        }
        try{
            //将文件写入磁盘
            image.transferTo(new File(dirPath+fileName));
        }catch (Exception e){
            e.printStackTrace();
        }
        //携带上传状态信息回调到文件上传页面
        return AppResult.success();
    }

}
